import fs from 'fs';
import path from 'path';

// 配置临时目录
const TEMP_DIR = path.join(process.cwd(), 'frontend/temp');

// 确保目录存在
if (!fs.existsSync(TEMP_DIR)) {
  fs.mkdirSync(TEMP_DIR, { recursive: true });
}

export default async function handler(req, res) {
  if (req.method !== 'GET') {
    return res.status(405).json({ 
      code: 405, 
      message: '方法不允许' 
    });
  }

  try {
    const { fileId } = req.query;

    if (!fileId) {
      return res.status(400).json({
        code: 400,
        message: '文件ID不能为空'
      });
    }

    // 查找匹配的文件
    const filesInDir = fs.readdirSync(TEMP_DIR);
    const matchingFile = filesInDir.find(f => f.startsWith(fileId));

    if (!matchingFile) {
      return res.status(404).json({
        code: 404,
        message: '文件不存在或已过期'
      });
    }

    const filePath = path.join(TEMP_DIR, matchingFile);
    const fileName = matchingFile.substring(matchingFile.indexOf('_') + 1) || matchingFile;
    
    // 设置响应头
    res.setHeader('Content-Disposition', `attachment; filename=${encodeURIComponent(fileName)}`);
    res.setHeader('Content-Type', 'application/octet-stream');

    // 使用文件流发送文件
    const fileStream = fs.createReadStream(filePath);
    fileStream.pipe(res);
  } catch (error) {
    console.error('下载文件异常:', error);
    res.status(500).json({
      code: 500,
      message: '服务器内部错误'
    });
  }
} 